package com.njbw.design_pattern.created.factory.factoryMethod2.product;

import java.io.IOException;
import java.io.InputStream;

/**
 * 资源接口
 *
 * @author 黄侯淳
 * @since JDK 1.8
 */
public interface IResource {

    /**
     * 获取资源的输入流
     * 不同的资源实现类可以有不同的获取方式，比如从文件系统、类路径、网络等位置获取
     * 但是最终都能归一化处理为一个输入流
     * <p/>
     * 每个子类需要独自实现的方法
     *
     * @return 资源的输入流
     * @throws IOException 读取资源失败时抛出
     */
    InputStream getInputStream() throws IOException;
}
